const sendEmail = require("./sendEmail.js");
// 生成邮件ID
const { v4: uuidv4 } = require("uuid");
// 导入已封装的数据函数
const db = require("../config/db.js");
// 导入config目录下的文件
// 设置项目名称
const project = require("../config/project.js");
// 设置邮箱授权码
const qqEmail = require("../config/qqEmail");
class Email {
    static async getEmailCode(client_email) {
        // 生成验证码
        let emailCode = Math.random().toString().slice(-6); //随机生成6位数字
        let email = {
            title: "闲暇日报---邮箱验证码",
            body: `
          <h1>您好：</h1>
          <p style="font-size: 18px;color:#000;">
            您的验证码为：
            <span style="font-size: 16px;color:#f00;"><b>${emailCode}</b>,</span>
            <p>您当前正在${project.projectName}注册账号，验证码告知他人将会导致数据信息被盗，请勿泄露!</p>
          </p>
          <p style="font-size: 1.5rem;color:#999;">60秒内有效</p>
          `,
        };
        let emailCotent = {
            from: qqEmail.email, // 发件人地址
            to: `${client_email}`, // 收件人地址，多个收件人可以使用逗号分隔
            subject: email.title, // 邮件标题
            html: email.body, // 邮件内容
        }; //发送邮件 // console.log('邮箱验证-->',emailCotent);
        await sendEmail.send(emailCotent); // 写入数据库
        let cid = uuidv4(); // 查询数据表是否有这条验证记录
        db.query('select * from news_code where code_id = "' + cid + '"', (err1, rows) => {
            if (err1) {
                console.log("查询邮箱验证码失败:", err1);
            } else {
                if (rows.length === 0) {
                    // 用户点击发送验证码时，这个验证码会存在数据库
                    db.query("insert into news_code(code_pwd,code_id) values('" + emailCode + "','" + cid + "')", (err2) => {
                        if (err2) {
                            console.log("插入邮箱验证码失败:", err2);
                        } else {
                            // 60秒后移除验证码（从数据库中删除）
                            let d = setTimeout(() => {
                                db.query("delete from news_code where code_id = '" + cid + "'", function (err3) {
                                    if (err3) {
                                        console.log("删除邮箱验证码失败:", err3);
                                    }
                                    clearTimeout(d);
                                });
                            }, 60 * 1000);
                        }
                    });
                }
            }
        });
    }
}
module.exports = {
    Email,
};
